# 李广龙
# frps 服务器sh脚本
# 0.40 版本
echo frps版本:0.40

SERVICE_PATH="/data/frp"

# 一个frps可以进行多个机器的内网穿透
# 只要在多个机器上配置frpc 服务就可以 每个[] server名不可以重复
# 如果server中的remote_port端口冲突了 会使这一个server块启动错误,不会影响其他的server块
# frps 一对多 frpc frpc可以在多个不同的机器上
# http使用8080端口，https使用8081端口 没有域名情况下只能转发一个http或https端口 tup udp可以多个，要转发多个 必须使用二级域名才可以
creatStart() {
docker pull snowdreamtech/frps
mkdir -p $SERVICE_PATH
cd $SERVICE_PATH || exit
cat >./frps.ini <<EOF
[common]
bind_port = 7000
# 虚拟主机
# 记得修改端口 如果端口占用 会启动错误  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
vhost_http_port = 7001
vhost_https_port = 7002
# 后端虚拟主机响应超时时间，默认为60s；
vhost_http_timeout = 60
# 开启frps仪表盘可以检查frp的状态和代理的统计信息
# frps仪表盘绑定的地址；
dashboard_addr = 0.0.0.0
# frps仪表盘绑定的端口
dashboard_port = 7500
# 访问frps仪表盘的用户
dashboard_user = admin
# 密码
dashboard_pwd = 123456lgl
#token认证
authentication_method = token
authenticate_new_work_conns = true
token = 123456lgl
EOF

start
}

# --network host: host 网络模式，所有容器端口都对应属主机端口，不存在映射关系。
start() {
  docker run -d --restart=always --network host --name frps -v /data/frp/frps.ini:/etc/frp/frps.ini snowdreamtech/frps
  docker ps -a | grep frp
  echo "frps运行成功！"
  echo "访问ip:7500 查询状态"
}

read -p '输入功能编号 0:创建挂载运行 1:挂载运行: (任意键退出)' input
echo "输入编号:$input"

case $input in
    0)
    creatStart
    ;;
    1)
    start
    ;;
    *)
    echo -e "${RED}退出sh脚本${RES}"
    exit 0
    ;;
  esac



# windows frpc 客户端
# https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip

#[common]
#server_addr = 121.43.149.217
#server_port = 7000
#authentication_method = token
#authenticate_new_work_conns = true
#token = 123456lgl
#
#[ssh]
#type = tcp
#local_ip = 127.0.0.1
#local_port = 22
# 远程frps端口 6000 映射本地 22
#remote_port = 6000
#[web]
#type = http
#local_ip = 127.0.0.1
#local_port = 33380
# http 配置域名单个http映射也可以用ip 多个http映射必须多个域名 一级二级域名
#custom_domains = elel.fun

# windows 后台运行脚本 .vbs文件
#set ws=wscript.createobject("wscript.shell")
#ws.run "cmd /c D:\6789\frp_0.40.0_windows_amd64\frp_0.40.0_windows_amd64\frpc -c D:\6789\frp_0.40.0_windows_amd64\frp_0.40.0_windows_amd64\frpc.ini",0
